//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#ifndef _CandidateDBForPGSearch_h__
#define	_CandidateDBForPGSearch_h__
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#include "BindingInfoCathFASTAProfile.h"
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
class CandidateDBForPGSearch {
    
  private:
    
    String*                               filenameBindingProfile;
    String*                               filenameCATHProfile;
    
    TListE <BindingInfoCathFASTAProfile>* bindingProfiles;
    TListE <String>*                      ligands;
    
    String*                               filenameOut;
    
    String*                               toString;
  
  public:
    
    CandidateDBForPGSearch();
    CandidateDBForPGSearch(const CandidateDBForPGSearch&);
    CandidateDBForPGSearch(const CandidateDBForPGSearch*);
    
    ~CandidateDBForPGSearch();

    void                                  FilenameBindingProfile (String*);
    void                                  FilenameCATHProfile (String*);
    void                                  BindingProfiles (TListE <BindingInfoCathFASTAProfile>*);
    void                                  Ligands (TListE <String>*);
    void                                  FilenameOut (String*);
    
    String*                               FilenameBindingProfile (void);
    String*                               FilenameCATHProfile (void);
    TListE <BindingInfoCathFASTAProfile>* BindingProfiles (void);
    TListE <String>*                      Ligands (void);
    String*                               FilenameOut (void);
    
    bool                                  LoadData (void);
    bool                                  HideDuplicated (void);
    
    bool                                  WriteCATHProfile (void);
    
    bool                                  WriteProfileBindingRegion (void);
    
    bool                                  WriteSequencesBindingRegion (void);
    bool                                  WriteSecondaryPBindingRegion (void);
    bool                                  WriteSecondaryCBindingRegion (void);
    bool                                  WriteChemicalClassBindingRegion (void);
    bool                                  WritePhysicalClassBindingRegion (void);
    bool                                  WriteMetaStructureEncodeClassBindingRegion (void);
    
    bool                                  WriteProfileBindingRegionExtended (int);
    
    bool                                  WriteSequencesBindingRegionExtended (int);
    bool                                  WriteSecondaryPBindingRegionExtended (int);
    bool                                  WriteSecondaryCBindingRegionExtended (int);
    bool                                  WriteChemicalClassBindingRegionExtended (int);
    bool                                  WritePhysicalClassBindingRegionExtended (int);
    bool                                  WriteMetaStructureEncodeClassBindingRegionExtended (int);
    
    CandidateDBForPGSearch                operator= (const CandidateDBForPGSearch&);
    
};
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#endif
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//


